package com.example.scanfast.addfile;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.FileProvider;

import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.os.Bundle;
import android.widget.Toast;

import com.example.scanfast.R;
import com.example.scanfast.constant.Constant;
import com.example.scanfast.utils.CommonUtil;

import java.io.File;
import java.util.List;

public class AddFileDetailsActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_add_file_details);

        // 获取传递的Intent
        Intent intent = getIntent();

        if (intent != null) {
            // 从Intent中获取文件路径
            String filePath = intent.getStringExtra("FILE_PATH");

            if (filePath != null) {
                File file = new File(filePath);

                if (file.exists()) { // 检查文件是否存在
                    // 根据文件路径创建File对象，然后使用FileProvider获取对应的Uri
                    Uri uri = FileProvider.getUriForFile(this, Constant.AUTHORITY, file);

                    // 创建一个Intent以打开文件
                    Intent viewIntent = new Intent(Intent.ACTION_VIEW);
                    viewIntent.setDataAndType(uri, CommonUtil.getMimeType(filePath));
                    viewIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);

                    // 检查是否有应用能够处理该Intent
                    PackageManager packageManager = getPackageManager();
                    List<ResolveInfo> resolveInfoList = packageManager.queryIntentActivities(viewIntent, PackageManager.MATCH_DEFAULT_ONLY);

                    // 如果有应用可以处理该Intent，则启动该应用
                    if (resolveInfoList.size() > 0) {
                        startActivity(viewIntent);
                    } else {
                        // 如果没有应用能够处理该Intent，你可能需要提示用户安装相关应用或者提供其他选项
                        Toast.makeText(this, "No app can open this file.", Toast.LENGTH_SHORT).show();
                    }
                } else {
                    // 文件不存在，处理相应逻辑
                    Toast.makeText(this, "File not found.", Toast.LENGTH_SHORT).show();
                }
            }
        }

    }

}